U.S. Pat. No. 5,473,362 describes a video-on-demand system that has a number of data servers with storage devices at which are stored data sequences, such as data sequences for movies. The data servers are under control of the controller, and each data server may have one or more storage devices, such as disk storage devices, attached to it. The data servers are designated as "cubs" and the controller is designated as a "tiger." Each cub has one or more high bandwidth network connections to a switched network, such as an ATM network or a switched Ethernet.
Each movie or data file is striped across the storage devices that are connected to the cubs. Each file is divided into blocks of a certain duration and each block is written on a storage device associated with a successive cub in a predefined sequence. Thus, for example, a first block of the data file may be stored on a storage device of a first cub, a second sequential block may be stored on a storage device of a second cub and a third sequential block may be stored on a storage device of a third cub. As a result of this storage scheme, when a viewer wishes to see the data file, each successive cub must output the data block stored on its storage device in sequence at the proper time.
In order to prevent two viewers from needing access to a same storage device at exactly the same time, the tiger controller maintains a centralized schedule of viewers. The schedule is divided into slots, where each of the slots represents a unit of system capacity to send a block of the data file to a viewer during a given time interval. Scheduling occurs on a per slot basis. When a viewer requests to view a movie, the viewer has to wait until the storage device holding the first block of the movie encounters an empty slot in the schedule. The slot may then be assigned to the viewer. FIG. 1 depicts an example of the scheduling of slots for three disk storage devices. Each disk has a like sequence of slots time-shifted relative to its predecessor. At time 0, disk 0 outputs the first data block for slot 1 that is assigned to a viewer. One time unit later, disk 1 outputs the next successive block for that slot, and at time 2, disk 2 outputs a next successive block in slot 1. As can be seen in FIG. 1, each disk storage device has a column with time slots at which it sequentially outputs blocks of data.
One limitation of the above-described system is that scheduling may fail if the tiger controller fails. The tiger controller constitutes a single point of failure within the system. In addition, a great deal of network traffic must flow between the tiger controller and the cubs in order to properly perform scheduling.